/*
1. 客户端将用户名、授权码、已选商品列表以 POST 请求方式发送到服务端；
2. 服务端获取请求，核对授权信息是否合法；
3. 如果授权信息合法，将订单信息保存在数据库中，返回响应；
4. 如果授权信息不合法，直接返回响应；
5. 客户端根据响应在页面输出提示或进行页面跳转。
*/
const Token = require('../model/tokens')
const OrderLists = require('../model/orderlists')

async function orderlistAdd(ctx) {

	let username = ctx.request.body.username;
	let orderlist = ctx.request.body.orderlist;
	let creattime = Date.now(); //时间戳
	let orderstate = "nopay";
	let ordertotal = ctx.request.body.ordertotal;
	let tokenid = ctx.request.body.tokenid;

	let result = {
		errCode: 0,
		errMsg: "下单成功"
	}

	//使用客户端提供的tokenid验证用户是否存在或过期
	let checkToken = await Token.findOne({
		tokenid: tokenid
	})
	//验证当前操作的用户是否合法
	if (!checkToken || checkToken.overtime < creattime) {
		//未验证
		result.errCode = 1;
		result.errMsg = "当前用户未登录";
		ctx.body = result;
		return;
	} else {
		//已验证
		let orderinfo = new OrderLists({
			username,
			orderlist,
			creattime,
			orderstate,
			ordertotal
		})
		await orderinfo.save();
		ctx.body = result;
		return;
	}
}

module.exports = orderlistAdd;
